<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.org/ui">


<ui:composition template="/templates/templateAdmin.xhtml">
	<ui:define name="conteudo">
		<h:form>
			<p:dataTable var="aluno" id="listarAluno" value="#{mBAluno.alunos}"
				emptyMessage="Não há alunos cadastrados" rows="10" paginator="true">
				<p:column filterBy="#{aluno.usuario.matricula}"
					filterMatchMode="contains">
					<f:facet name="header">
						Matricula
					</f:facet>
					<p:commandLink value="#{aluno.usuario.matricula}" oncomplete="alunoDialog.show()" update="@form"> 
						<f:setPropertyActionListener target="#{mBAluno.alunoVizualizacao}" value="#{aluno}"/>
					</p:commandLink>
				</p:column>
				<p:column filterBy="#{aluno.usuario.nome}"
					filterMatchMode="contains">
					<f:facet name="header">
						Nome
					</f:facet>
					<h:outputText value="#{aluno.usuario.nome}" />
				</p:column>
				<p:column filterBy="#{aluno.usuario.email}" filterMatchMode="contains">
					<f:facet name="header">
						Email
					</f:facet>
					<h:outputText value="#{aluno.usuario.email}" />
				</p:column>
				<p:column filterBy="#{aluno.telefone1}" filterMatchMode="contains">
					<f:facet name="header">
						Telefone 1
					</f:facet>
					<h:outputText value="#{aluno.telefone1}" />
				</p:column>
				<p:column filterBy="#{aluno.escola.nome}" filterMatchMode="contains">
					<f:facet name="header">
						Escola
					</f:facet>
					<p:commandLink value="#{aluno.escola.nome}" oncomplete="escolaDialog.show()" update="@form">
						<f:setPropertyActionListener target="#{mBEscola.escola}" value="#{aluno.escola}" />
					</p:commandLink>
					
				</p:column>
				<p:column>
					<f:facet name="header">
						Operações
					</f:facet>
					<p:commandButton value="Editar" ajax="false" action="#{mBAluno.irEditar}">
						<f:setPropertyActionListener target="#{mBAluno.aluno}"
							value="#{aluno}" />
					</p:commandButton>
					<p:commandButton value="Excluir" oncomplete="confirmation.show()">
						<f:setPropertyActionListener target="#{mBAluno.aluno}"
							value="#{aluno}" />
					</p:commandButton>


					<p:confirmDialog id="confirmDialog"
						message="Tem certeza que deseja excluir o aluno?" header="Warning"
						severity="alert" widgetVar="confirmation">

						<p:commandButton id="confirm" value="Sim"
							oncomplete="confirmation.hide()" action="#{mBAluno.excluir}"
							ajax="false" />

						<p:commandButton id="decline" value="Não"
							oncomplete="confirmation.hide()" action="#{mBAluno.limpar}" />

					</p:confirmDialog>

				</p:column>
			</p:dataTable>
			<p:dialog widgetVar="alunoDialog">
				<ui:include src="../../comum/aluno.xhtml">
					<ui:param name="aluno" value="#{mBAluno.alunoVizualizacao}"/>
				</ui:include>
			</p:dialog>
			
			<p:dialog widgetVar="escolaDialog">
				<ui:include src="../../comum/escola.xhtml">
					<ui:param name="escola" value="#{mBEscola.escola}"/>
				</ui:include>
			</p:dialog>
			
		</h:form>
		<p:panel header="Aluno">
			<h:form>
				<p:panel header="Pessoal" toggleable="true">
					<h:panelGrid columns="2">
						<h:outputLabel value="Nome*:" />
						<p:inputText value="#{mBAluno.aluno.usuario.nome}" size="50"
							required="true" requiredMessage="Insira o nome" />
							
							<h:outputLabel value="Nome da mãe*:" />
						<p:inputText value="#{mBAluno.aluno.nome_mae}" size="50"
							required="true" requiredMessage="Insira o nome da mãe" />
							
							<h:outputLabel value="Nome do pai*:" />
						<p:inputText value="#{mBAluno.aluno.nome_pai}" size="50"
							required="true" requiredMessage="Insira o nome do pai" />

						<h:outputLabel value="Sexo*:" />
						
						<p:selectOneRadio required="true" requiredMessage="Insira o sexo" value="#{mBAluno.aluno.sexo}">
							<f:selectItem itemLabel="Masculino" itemValue="M"/>
							<f:selectItem itemLabel="Feminino" itemValue="f"/>
						</p:selectOneRadio>
						
						
						<h:outputLabel value="Data de Nascimento*:" />
						<p:calendar required="true" size="6" requiredMessage="Insira o nascimento" value="#{mBAluno.nascimento}"/>

						<h:outputLabel value="Renda Familiar:" />
						<p:inputText value="#{mBAluno.aluno.renda}" size="10"/>
						
						<h:outputLabel value="Telefone 1:" />
						<p:inputMask mask="(99)9999-9999" value="#{mBAluno.aluno.telefone1}" size="11"/>
						<h:outputLabel value="Telefone 2:" />
						<p:inputMask mask="(99)9999-9999" value="#{mBAluno.aluno.telefone2}" size="11"/>
						
						<h:outputLabel value="Email:" />
						<p:inputText value="#{mBAluno.aluno.usuario.email}" size="50"
							validatorMessage="Email inválido">
							<f:validateRegex
								pattern="[\w\.-]*[a-zA-Z0-9_]@[\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]" />
						</p:inputText>

						<h:outputLabel value="Senha*:"
							rendered="#{mBAluno.aluno.id == NULL}" />
						<p:password rendered="#{mBAluno.aluno.id == NULL}"
							value="#{mBAluno.aluno.usuario.senha}" required="true"
							requiredMessage="Insira a senha" />
						<h:outputLabel rendered="#{mBAluno.aluno.id == NULL}"
							value="Repetir Senha*:" />
						<p:password rendered="#{mBAluno.aluno.id == NULL}"
							value="#{mBAluno.senhaRepetida}" required="true"
							requiredMessage="Insira a repetição da senha" />
					</h:panelGrid>
				</p:panel>
				<p:panel header="Documentos" toggleable="true">
					<h:panelGrid columns="2">
						<h:outputLabel value="CPF:" />
						<p:inputMask value="#{mBAluno.aluno.usuario.cpf}" size="12"
							mask="999.999.999-99" />
						<h:outputLabel value="Identidade:" />
						<p:inputMask value="#{mBAluno.aluno.identidade}" size="8"
							mask="999.999.999" />
						<h:outputLabel value="Titulo:" />
						<p:inputMask value="#{mBAluno.aluno.titulo}" size="12"
							mask="9999.9999.9999" />
					</h:panelGrid>
				</p:panel>
				<p:panel header="Naturalidade" toggleable="true">
				<h:panelGrid columns="2">
					<h:outputLabel value="País*:" />
					<p:inputText value="#{mBAluno.aluno.pais}" required="true" requiredMessage="Insira um país"/>
					<h:outputLabel value="Município*:" />
					<p:inputText value="#{mBAluno.aluno.municipio}" size="40" required="true" requiredMessage="Insira um município"/>
					<h:outputLabel value="Estado*:" />
					<p:inputText value="#{mBAluno.aluno.estado_naturalidde}" size="20" required="true" requiredMessage="Insira o estado"/>
				</h:panelGrid>
					
				</p:panel>
				<p:panel header="Endereço" toggleable="true">
					<h:panelGrid columns="2">
						<h:outputLabel value="Cep*:" />
						<p:inputMask value="#{mBAluno.aluno.cep}" size="8" required="true" requiredMessage="Insira um cep"
							mask="99999-999" />
						<h:outputLabel value="Rua*:" />
						<p:inputText value="#{mBAluno.aluno.endereco}" size="60" required="true" requiredMessage="Insira uma rua"/>
						<h:outputLabel value="Número*:" />
						<p:inputText value="#{mBAluno.aluno.numero}" size="4" required="true" requiredMessage="Insira um número"/>
						<h:outputLabel value="Bairro*:" />
						<p:inputText value="#{mBAluno.aluno.bairro}" required="true" requiredMessage="Insira um bairro"/>
						<h:outputLabel value="Estado*:" />
						<p:selectOneMenu value="#{mBAluno.aluno.estado}" required="true" requiredMessage="Insira um estado">
							<f:selectItem itemValue="" itemLabel="----"/>
							<f:selectItems value="#{mBAluno.estados}" var="estado" itemLabel="#{estado}" itemValue="#{estado}" />
							<p:ajax event="change" listener="#{mBAluno.carregarCidades()}" update="Cidades"/>
						</p:selectOneMenu>
						<h:outputLabel value="Cidade*:" />
						<p:selectOneMenu id="Cidades" value="#{mBAluno.aluno.cidade}" required="true" requiredMessage="Insira um estado">
							<f:selectItem itemValue="" itemLabel="----"/>
							<f:selectItems value="#{mBAluno.cidades}" var="estado" itemLabel="#{estado}" itemValue="#{estado}" />
						</p:selectOneMenu>
					</h:panelGrid>
				</p:panel>
				
				<p:panel header="Informações" toggleable="true">
					<h:panelGrid columns="2">
						<h:outputLabel value="Doenças:" />
						<p:inputText value="#{mBAluno.aluno.doencas}" size="40"/>
						<h:outputLabel value="Alergias:" />
						<p:inputText value="#{mBAluno.aluno.alergias}" size="40"/>
						<h:outputLabel value="Possui plano de saúde?" />
						<p:selectBooleanCheckbox value="#{mBAluno.aluno.possiu_plano}" />
					</h:panelGrid>
				</p:panel>
				
				<p:panel header="Responsável" toggleable="true">
					<h:panelGrid columns="2">
						<h:outputLabel value="Nome*:" />
						<p:inputText value="#{mBAluno.aluno.nome_resp}" size="60" required="true" requiredMessage="Insra o nome do responsável"/>
						<h:outputLabel value="CPF*:" />
						<p:inputMask mask="999.999.999-99" size="12" value="#{mBAluno.aluno.cpf_resp}" required="true" requiredMessage="Insira o CPF do responsável"/>
						<h:outputLabel value="Sexo*:" />
						<p:selectOneRadio value="#{mBAluno.aluno.sexo_resp}" required="true" requiredMessage="Insira o sexo do responsável">
							<f:selectItem itemLabel="Masculino" itemValue="M"/>
							<f:selectItem itemLabel="Feminino" itemValue="f"/>
						</p:selectOneRadio>
						<h:outputLabel value="Data de Nascimento*:" />
						<p:calendar value="#{mBAluno.nascimento_resp}" size="6" required="true" requiredMessage="Insira a data de nascimento do responsável"/>
						<h:outputLabel value="Grau de Parentesco*:" />
						<p:inputText value="#{mBAluno.aluno.grau_resp}" required="true" requiredMessage="Insira o grau de parentesco do responsável"/>
						<h:outputLabel value="Profissão:" />
						<p:inputText value="#{mBAluno.aluno.profissao_resp}" />
						<h:outputLabel value="Escolaridade:" />
						<p:inputText size="30" value="#{mBAluno.aluno.escolaridade_resp}" />
						<h:outputLabel value="Telefone fixo:" />
						<p:inputMask mask="(99)9999-9999" size="11" value="#{mBAluno.aluno.telefone_resp}"/>
						<h:outputLabel value="Telefone do trabalho:" />
						<p:inputMask mask="(99)9999-9999" size="11" value="#{mBAluno.aluno.trabalho_resp}"/>
						<h:outputLabel value="Celular:" />
						<p:inputMask mask="(99)9999-9999" size="11" value="#{mBAluno.aluno.celular_resp}"/>
						<h:outputLabel value="Email:" />
						<p:inputText value="#{mBAluno.aluno.email_resp}" size="50"
							validatorMessage="Email inválido">
							<f:validateRegex
								pattern="[\w\.-]*[a-zA-Z0-9_]@[\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]" />
						</p:inputText>
					</h:panelGrid>
				</p:panel>
				
				<p:panel header="Escola" toggleable="true">
					<h:panelGrid columns="2">
						<h:outputLabel value="Escola*:" />
						<p:autoComplete size="40" dropdown="true" value="#{mBAluno.escola}"
							completeMethod="#{mBEscola.complete}" required="true" forceSelection="true" requiredMessage="Escolha uma das escola listadas"/>
						<h:outputText value="Série*:" />
					<p:selectOneMenu value="#{mBAluno.aluno.serie}">
						<f:selectItem itemValue="0" itemLabel="---------------------"/>
						<f:selectItem itemValue="1 Ano - Fundamental" itemLabel="1° Ano - Fundamental"/>
						<f:selectItem itemValue="2 Ano - Fundamental" itemLabel="2° Ano - Fundamental"/>
						<f:selectItem itemValue="3 Ano - Fundamental" itemLabel="3° Ano - Fundamental"/>
						<f:selectItem itemValue="4 Ano - Fundamental" itemLabel="4° Ano - Fundamental"/>
						<f:selectItem itemValue="5 Ano - Fundamental" itemLabel="5° Ano - Fundamental"/>
						<f:selectItem itemValue="6 Ano - Fundamental" itemLabel="6° Ano - Fundamental"/>
						<f:selectItem itemValue="7 Ano - Fundamental" itemLabel="7° Ano - Fundamental"/>
						<f:selectItem itemValue="8° Ano - Fundamental" itemLabel="8° Ano - Fundamental"/>
						<f:selectItem itemValue="9 Ano - Fundamental" itemLabel="9° Ano - Fundamental"/>
						<f:selectItem itemValue="1 Ano - Medio" itemLabel="1° Ano - Médio"/>
						<f:selectItem itemValue="2 Ano - Medio" itemLabel="2° Ano - Médio"/>
						<f:selectItem itemValue="3 Ano - Medio" itemLabel="3° Ano - Médio"/>
					</p:selectOneMenu>
					</h:panelGrid>
				</p:panel>

				<h:panelGroup rendered="#{mBAluno.aluno.id == NULL}">
					<p:commandButton value="Cadastrar" ajax="false"
						action="#{mBAluno.cadastrar}" />
					<p:commandButton value="Cancelar" ajax="false" type="reset"/>
				</h:panelGroup>
				<h:panelGroup rendered="#{mBAluno.aluno.id != NULL}">
					<p:commandButton value="Editar" ajax="false"
						action="#{mBAluno.editar}" />
					<p:commandButton value="Cancelar" ajax="false"
						action="#{mBAluno.limpar}" onclick="form.reset()"/>
				</h:panelGroup>

			</h:form>
		</p:panel>
	</ui:define>
</ui:composition>
</html>